import logging
from aiogram import types
from app.models.chat_admins import insert_admins

from app.utils.chat_admin import get_channel_admins
from app.services.keyboards import prepare_keyboard
from app.bot_init import bot


start_menu = prepare_keyboard(('Создать анонс', 'Мои анонсы'))


START_TEXT = """
Приветствуем. Этот тетелеграм <b>бот</b> принадлежит клубу Благость. 

<a href="https://blagost.club/">Сайт клуба Благость</a>
"""

HELP_TEXT = """
Здесь вы можете почитать краткую справку по боту

<code>
/start
/help
/events

</code>
"""

async def bot_start(msg: types.Message):
    await msg.answer(
            START_TEXT,
            parse_mode=types.message.ParseMode.HTML,
            reply_markup=start_menu
    )

async def bot_help(msg: types.Message):
    await msg.answer(
            HELP_TEXT,
            parse_mode=types.message.ParseMode.HTML,
            reply_markup=start_menu
)


async def channel_register(message: types.Message):
    channel_id = message.chat.id
    logging.debug(message.chat)
    admins = await get_channel_admins(channel_id)
    owner_id = [a for a in admins if types.ChatMember.is_chat_owner(a)][0].user.id
    try:
        insert_admins(
            channel_id=channel_id,
            channel_title=message.chat.title,
            admins=admins
        )
    except Exception:
        logging.exception("При регистрации админов произощла ошибка")
        await bot.send_message(owner_id, f"Возможно, не удалось зарегистрировать \
кого-то из админов в чате {message.chat.title}. Смотрите логи на сервере или \
обратитесь к разработчику") 
    else:
        await bot.send_message(owner_id, f"Зарегистрировал всех админов \
канала {message.chat.title}")
        logging.debug(admins)
    finally:
        await message.delete()
